#ifndef __JK_BASE_H_
#define __JK_BASE_H_


#define JK_LIB_NAMESPACE_BEGIN namespace JkBase {
#define JK_LIB_NAMESPACE_END   }

#define JK_ALGORITHM_NAMESPACE_BEGIN namespace JkAlgorithm {
#define JK_ALGORITHM_NAMESPACE_END }


typedef __int8      jk_byte;
typedef __int16     jk_short;
typedef __int32     jk_int;
typedef __int64     jk_long;
typedef float       jk_float;
typedef double      jk_double;

template<typename T>
struct Pointer
{
    typedef T*          pointer;
    typedef const T*    const_pointer;
};

template<typename T>
struct Pointer<T*>
{
    typedef T           pointer;
    typedef const T     const_pointer;
};

template<typename T>
struct Reference
{

};

#endif //!__JK_BASE_H_
